package com.hospital.workstation.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.hospital.common.annotation.ExcelDictFormat;
import com.hospital.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
import java.util.List;


/**
 * B表 药品不良反应/事件报告表视图对象 electronic_monitor_two_info
 *
 * @author hospital
 * @date 2024-05-07
 */
@Data
@ExcelIgnoreUnannotated
public class ElectronicMonitorTwoInfoVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ExcelProperty(value = "主键id")
    private Long id;

    /**
     * 管理信息的主键id
     */
    private Long manageId;

    /**
     * 检测表流水号
     */
    @ExcelProperty(value = "检测表流水号")
    private String monitorRecordNo;

    /**
     * 患者流水号
     */
    private Integer medicalRecordNo;

    /**
     * 医院编号
     */
    @ExcelProperty(value = "医院编号")
    private String hospitalNo;

    /**
     * 科室/病区ID
     */
    @ExcelProperty(value = "科室/病区ID")
    private Long deptId;

    /**
     * 床号
     */
    @ExcelProperty(value = "床号")
    private String bedNo;

    /**
     * 患者姓名
     */
    @ExcelProperty(value = "患者姓名")
    private String patientName;

    /**
     * 患者姓名缩写
     */
    @ExcelProperty(value = "患者姓名缩写")
    private String patientNameAcronym;

    /**
     * 住院号
     */
    @ExcelProperty(value = "住院号")
    private String patientNo;

    /**
     * 入组日期
     */
    @ExcelProperty(value = "入组日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date inputFormDate;

    /**
     * 不良反应/事件类别（1新的 2严重 3一般）
     */
    @ExcelProperty(value = "不良反应/事件类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=新的,2=严重,3=一般")
    private String badType;

    /**
     * 报告时间
     */
    @ExcelProperty(value = "报告时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date reportDate;

    /**
     * 患者性别（1男 2女 3未知）
     */
    @ExcelProperty(value = "患者性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=男,2=女,3=未知")
    private String patientSex;

    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    private Date birthdate;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 联系方式
     */
    @ExcelProperty(value = "联系方式")
    private String phoneNo;

    /**
     * 原患疾病
     */
    @ExcelProperty(value = "原患疾病")
    private String originalIllness;

    /**
     * 既往药品不良反应/事件（0无 1有 2不详）
     */
    @ExcelProperty(value = "既往药品不良反应/事件", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有,2=不详")
    private String pillsBadBefore;

    /**
     * 既往药品不良反应/事件的药品名称
     */
    @ExcelProperty(value = "既往药品不良反应/事件的药品名称")
    private String pillsBadBeforeName;

    /**
     * 家族药品不良反应/事件（0无 1有）
     */
    @ExcelProperty(value = "家族药品不良反应/事件", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String pillsBadFamily;

    /**
     * 家族药品不良反应/事件的药品名称
     */
    @ExcelProperty(value = "家族药品不良反应/事件的药品名称")
    private String pillsBadFamilyName;

    /**
     * 家族关系（0父母 1兄弟姐妹 2其他 3不详）
     */
    @ExcelProperty(value = "家族关系", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=父母,1=兄弟姐妹,2=其他,3=不详")
    private String relationFamily;

    /**
     * 家族关系其它
     */
    @ExcelProperty(value = "家族关系其它")
    private String relationFamilyOther;

    /**
     * 相关信息（1吸烟史 2饮酒史 3妊娠期 4肝病史 5肾病史 6过敏史 7其它）
     */
    @ExcelProperty(value = "相关信息", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=吸烟史,2=饮酒史,3=妊娠期,4=肝病史,5=肾病史,6=过敏史,7=其它")
    private String relationInfo;

    /**
     * 相关信息其它
     */
    @ExcelProperty(value = "相关信息其它")
    private String relationInfoOther;

    /**
     * 不良反应/事件名称
     */
    @ExcelProperty(value = "不良反应/事件名称")
    private String badName;

    /**
     * 不良反应/事件名称其它
     */
    @ExcelProperty(value = "不良反应/事件名称其它")
    private String badNameOther;

    /**
     * 不良反应/事件发生时间
     */
    @ExcelProperty(value = "不良反应/事件发生时间")
    private Date badTime;

    /**
     * 用药小时
     */
    @ExcelProperty(value = "用药小时")
    private Integer useHours;

    /**
     * 用药分钟
     */
    @ExcelProperty(value = "用药分钟")
    private Integer useMinute;

    /**
     * 用药第几天
     */
    @ExcelProperty(value = "用药第几天")
    private Integer useDays;

    /**
     * 出院后是否跟踪回访（0否 1是）
     */
    @ExcelProperty(value = "出院后是否跟踪回访", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isTrack;

    /**
     * 回访经过及结果
     */
    @ExcelProperty(value = "回访经过及结果")
    private String trackResult;

    /**
     * 不良反应/事件转归时间
     */
    @ExcelProperty(value = "不良反应/事件转归时间")
    private Date turnoverDate;

    /**
     * 不良反应发生在第几天
     */
    @ExcelProperty(value = "不良反应发生在第几天")
    private Integer turnoverDays;

    /**
     * 表现
     */
    @ExcelProperty(value = "表现")
    private String badShow;

    /**
     * 表现其它
     */
    @ExcelProperty(value = "表现其它")
    private String badShowOther;

    /**
     * 是否有临床检验（0否 1是）
     */
    @ExcelProperty(value = "是否有临床检验（0否 1是）")
    private String isClinicalExamination;

    /**
     * 临床检验
     */
    @ExcelProperty(value = "临床检验")
    private String clinicalExamination;

    /**
     * 处理（0停药 1降低滴速 2减量使用 3继续使用 4其它）
     */
    @ExcelProperty(value = "处理", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=停药,1=降低滴速,2=减量使用,3=继续使用,4=其它")
    private String dispose;

    /**
     * 处理其它
     */
    @ExcelProperty(value = "处理其它")
    private String disposeOther;

    /**
     * 是否用药处理（0否 1是）
     */
    @ExcelProperty(value = "是否用药处理", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isPillsDispose;

    /**
     * 用药处理（1塞地米松 2肾上腺素 3异丙嗪 4吸氧 5其它）
     */
    @ExcelProperty(value = "用药处理", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=塞地米松,2=肾上腺素,3=异丙嗪,4=吸氧,5=其它")
    private String pillsDispose;

    /**
     * 用药处理其它
     */
    @ExcelProperty(value = "用药处理其它")
    private String pillsDisposeOther;

    /**
     * 使用方式（1静滴 2静注 3肌肉注射 4理疗 5其它）
     */
    @ExcelProperty(value = "使用方式", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=静滴,2=静注,3=肌肉注射,4=理疗,5=其它")
    private String useType;

    /**
     * 使用方式其它
     */
    @ExcelProperty(value = "使用方式其它")
    private String useTypeOther;

    /**
     * 药物剂量
     */
    @ExcelProperty(value = "药物剂量")
    private String pillsAmount;

    /**
     * 溶媒用量
     */
    @ExcelProperty(value = "溶媒用量")
    private String menstruumAmount;

    /**
     * 溶媒类型（1 5%葡萄糖注射液 2 10%葡萄糖注射液 3 0.9%氯化钠注射液 4 注射用水 5 其它）
     */
    @ExcelProperty(value = "溶媒类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=,5=%葡萄糖注射液,2=,1=0%葡萄糖注射液,3=,0=.9%氯化钠注射液,4=,注=射用水,5=,其=它")
    private String menstruumType;

    /**
     * 溶媒类型其它
     */
    @ExcelProperty(value = "溶媒类型其它")
    private String menstruumTypeOther;

    /**
     * 室温
     */
    @ExcelProperty(value = "室温")
    private String indoorTemperature;

    /**
     * 配液放置时间
     */
    @ExcelProperty(value = "配液放置时间")
    private String placeTime;

    /**
     * 滴速
     */
    @ExcelProperty(value = "滴速")
    private String drippingSpeed;

    /**
     * 是否与其它药物配制使用（0否 1是）
     */
    @ExcelProperty(value = "是否与其它药物配制使用", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isCompoundUse;

    /**
     * 配制使用药物
     */
    @ExcelProperty(value = "配制使用药物")
    private String isCompoundUsePills;

    /**
     * 注射前是否连续使用其它注射剂（0否 1是）
     */
    @ExcelProperty(value = "注射前是否连续使用其它注射剂", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isCountineUseBefore;

    /**
     * 注射前连续使用其它注射剂
     */
    @ExcelProperty(value = "注射前连续使用其它注射剂")
    private String isCountineUseBeforeInjection;

    /**
     * 注射后是否连续使用其它注射剂（0否 1是）
     */
    @ExcelProperty(value = "注射后是否连续使用其它注射剂", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isCountineUseAfter;

    /**
     * 注射后连续使用其它注射剂
     */
    @ExcelProperty(value = "注射后连续使用其它注射剂")
    private String isCountineUseAfterInjection;

    /**
     * 注射期间是否连续使用其它注射剂（0否 1是）
     */
    @ExcelProperty(value = "注射期间是否连续使用其它注射剂", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isCountineUseUnderway;

    /**
     * 注射期间连续使用其它注射剂
     */
    @ExcelProperty(value = "注射期间连续使用其它注射剂")
    private String isCountineUseUnderwayInjection;

    /**
     * 注射前（0未冲管 1冲管 2更换输液器）
     */
    @ExcelProperty(value = "注射前", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=未冲管,1=冲管,2=更换输液器")
    private String injectionBefore;

    /**
     * 注射后（0未冲管 1冲管 2更换输液器）
     */
    @ExcelProperty(value = "注射后", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=未冲管,1=冲管,2=更换输液器")
    private String injectionAfter;

    /**
     * 注射期间注射部位辅助治疗措施（1无 2热敷 3冷敷）
     */
    @ExcelProperty(value = "注射期间注射部位辅助治疗措施", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=无,2=热敷,3=冷敷")
    private String injectionMeasure;

    /**
     * 注射期间是否进食（0是 1否）
     */
    @ExcelProperty(value = "注射期间是否进食", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否")
    private String isInjectionEat;

    /**
     * 海鲜（0是 1否）
     */
    @ExcelProperty(value = "海鲜", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否")
    private String isSeafood;

    /**
     * 鸡蛋（0是 1否）
     */
    @ExcelProperty(value = "鸡蛋", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否")
    private String isEgg;

    /**
     * 花粉（0是 1否）
     */
    @ExcelProperty(value = "花粉", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否")
    private String isDust;

    /**
     * 酒精（0是 1否）
     */
    @ExcelProperty(value = "酒精", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否")
    private String isAlcohol;

    /**
     * 是否其它食物（0是 1否）
     */
    private String isFoodOther;

    /**
     * 其它食物
     */
    @ExcelProperty(value = "其它食物")
    private String foodOther;

    /**
     * 注射期间是否服药（0否 1是）
     */
    @ExcelProperty(value = "注射期间是否服药", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是")
    private String isTakePills;

    /**
     * 注射期间服药名称
     */
    @ExcelProperty(value = "注射期间服药名称")
    private String takePillsName;

    /**
     * 不良反应/事件的结果（0痊愈 1好转 2未好转 3不详 4有后遗症表现 5死亡）
     */
    @ExcelProperty(value = "不良反应/事件的结果", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=痊愈,1=好转,2=未好转,3=不详,4=有后遗症表现,5=死亡")
    private String badResult;

    /**
     * 后遗症表现
     */
    @ExcelProperty(value = "后遗症表现")
    private String sequelaeManifestation;

    /**
     * 直接死因
     */
    @ExcelProperty(value = "直接死因")
    private String dieReason;

    /**
     * 死亡时间
     */
    @ExcelProperty(value = "死亡时间")
    private Date dieDate;

    /**
     * 停药或减量后，反应/事件是否消失或减轻？（0是 1否 2未停药或未减量）
     */
    @ExcelProperty(value = "停药或减量后，反应/事件是否消失或减轻？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否,2=未停药或未减量")
    private String disappearedOrRelieve;

    /**
     * 再次使用可疑药品后是否再次出现同样反应/事件？（0是 1否 2不明 3未再使用）
     */
    @ExcelProperty(value = "再次使用可疑药品后是否再次出现同样反应/事件？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=是,1=否,2=不明,3=未再使用")
    private String againShow;

    /**
     * 对原患疾病的影响（0不明显 1病程延长 2病情加重 3导致后遗症 4导致死亡）
     */
    @ExcelProperty(value = "对原患疾病的影响", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=不明显,1=病程延长,2=病情加重,3=导致后遗症,4=导致死亡")
    private String toOriginalAffect;

    /**
     * 导致后遗症表现
     */
    @ExcelProperty(value = "导致后遗症表现")
    private String sequela;

    /**
     * 文字详细描述不良反应/事件发生发展过程（发生时间）
     */
    @ExcelProperty(value = "文字详细描述不良反应/事件发生发展过程", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "发=生时间")
    private Date happenTime;

    /**
     * 文字详细描述不良反应/事件发生发展过程（使用药物）
     */
    @ExcelProperty(value = "文字详细描述不良反应/事件发生发展过程", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "使=用药物")
    private String useMedicine;

    /**
     * 文字详细描述不良反应/事件发生发展过程（用药多长时间后）
     */
    @ExcelProperty(value = "文字详细描述不良反应/事件发生发展过程", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "用=药多长时间后")
    private Integer useTime;

    /**
     * 文字详细描述不良反应/事件发生发展过程（出现症状）
     */
    @ExcelProperty(value = "文字详细描述不良反应/事件发生发展过程", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "出=现症状")
    private String developSymptoms;

    /**
     * 文字详细描述不良反应/事件发生发展过程（检查某项指标(如生命体征等)）
     */
    @ExcelProperty(value = "文字详细描述不良反应/事件发生发展过程", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "检=查某项指标(如生命体征等)")
    private String checkSomething;

    /**
     * 文字详细描述不良反应/事件发生发展过程（检查值）
     */
    @ExcelProperty(value = "文字详细描述不良反应/事件发生发展过程", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "检=查值")
    private String checkValue;

    /**
     * 是否停用可疑药品(0-是，1-否)
     */
    @ExcelProperty(value = "是否停用可疑药品(0-是，1-否)")
    private String drugWithdrawal;

    /**
     * 停用可疑药品后采取其他措施
     */
    @ExcelProperty(value = "停用可疑药品后采取其他措施")
    private String otherMeasures;

    /**
     * 是否减量(0-是，1-否)
     */
    @ExcelProperty(value = "是否减量(0-是，1-否)")
    private String decrement;

    /**
     * 减量后，是否采取其他措施
     */
    @ExcelProperty(value = "减量后，是否采取其他措施")
    private String decrementOtherMeasures;

    /**
     * 是否未停药(0-是，1-否)
     */
    @ExcelProperty(value = "是否未停药(0-是，1-否)")
    private String drugOn;

    /**
     * 处理措施（0-停用可疑药品 1-减量 2-未停药）
     */
    @ExcelProperty(value = "处理措施", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0-停用可疑药品，1-减量，2-未停药")
    private String handleStep;

    /**
     * 未停药后，是否采取其他措施
     */
    @ExcelProperty(value = "未停药后，是否采取其他措施")
    private String noOtherMeasures;

    /**
     * 是否再次使用（0-是，1-否）
     */
    @ExcelProperty(value = "是否再次使用", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=-是，1-否")
    private String reuse;

    /**
     * 再次使用时间
     */
    @ExcelProperty(value = "再次使用时间")
    private Date reuseUseTime;

    /**
     * 再次使用药品名称、用法、用量等
     */
    @ExcelProperty(value = "再次使用药品名称、用法、用量等")
    private String reuseUseMedicine;

    /**
     * 再次使用时长
     */
    @ExcelProperty(value = "再次使用时长")
    private Integer reuseDuration;

    /**
     * 再次使用出现症状
     */
    @ExcelProperty(value = "再次使用出现症状")
    private String reuseDevelopSymptoms;

    /**
     * 使用后处理方式
     */
    @ExcelProperty(value = "使用后处理方式")
    private String reuseHandle;

    /**
     * 关联性报告人（0肯定 1很可能 2可能 3可能无关 4待评价 5无法评价）
     */
    @ExcelProperty(value = "关联性报告人", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=肯定,1=很可能,2=可能,3=可能无关,4=待评价,5=无法评价")
    private String relationReportPerson;

    /**
     * 关联性监测员签名
     */
    @ExcelProperty(value = "关联性监测员签名")
    private String relationInspectorSign;

    /**
     * 关联性报告单位（0肯定 1很可能 2可能无关 3待评价 4无法评价）
     */
    @ExcelProperty(value = "关联性报告单位", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=肯定,1=很可能,2=可能无关,3=待评价,4=无法评价")
    private String relationReportDept;

    /**
     * 关联性质控员签名
     */
    @ExcelProperty(value = "关联性质控员签名")
    private String relationQualityControllerSign;

    /**
     * 用药与不良反应/事件的出现有无合理的时间关系？（0无 1有）
     */
    @ExcelProperty(value = "用药与不良反应/事件的出现有无合理的时间关系？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String relationTime;

    /**
     * 反应是否符合该药已知的不良反应类型？（0否 1是 2不明）
     */
    @ExcelProperty(value = "反应是否符合该药已知的不良反应类型？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是,2=不明")
    private String accordWithBadType;

    /**
     * 停药或减量后，反应/事件是否消失或减轻？（0否 1是 2不明 3未停药或未减量）
     */
    @ExcelProperty(value = "停药或减量后，反应/事件是否消失或减轻？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是,2=不明,3=未停药或未减量")
    private String isDisappearedOrRelieve;

    /**
     * 再次使用可疑药品后是否再次出现同样反应/事件？（0否 1是 2不明 3未再使用）
     */
    @ExcelProperty(value = "再次使用可疑药品后是否再次出现同样反应/事件？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是,2=不明,3=未再使用")
    private String isAgainShow;

    /**
     * 反应/事件是否可用并用药的作用、患者病情的进展、其它治疗的影响来解释？（0否 1是 2不明）
     */
    @ExcelProperty(value = "反应/事件是否可用并用药的作用、患者病情的进展、其它治疗的影响来解释？", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否,1=是,2=不明")
    private String isEffectOther;

    /**
     * 严重药品不良反应/事件是指有下列情形之一者（1导致死亡 2致畸、致出生缺陷 3永久或显著的功能丧失 4危及生命，指严重病人即刻存在死亡的风险 5导致住院或住院时间延长 6其他重要医学事件）
     */
    @ExcelProperty(value = "严重药品不良反应/事件是指有下列情形之一者", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=导致死亡,2=致畸、致出生缺陷,3=永久或显著的功能丧失,4=危及生命，指严重病人即刻存在死亡的风险,5=导致住院或住院时间延长,6=其他重要医学事件")
    private String severityBadShow;

    /**
     * 监测员签名
     */
    @ExcelProperty(value = "监测员签名")
    private String inspectorSign;

    /**
     * 监测员签名日期
     */
    @ExcelProperty(value = "监测员签名日期")
    private Date inspectorDate;

    /**
     * 质控员签名
     */
    @ExcelProperty(value = "质控员签名")
    private String qualityControllerSign;

    /**
     * 质控员签名日期
     */
    @ExcelProperty(value = "质控员签名日期")
    private Date qualityControllerSignDate;

    /**
     * 提交状态（0暂存 1提交）
     */
    private String submitStatus;

    /**
     * 审核状态（0驳回 1通过）
     */
    private String auditStatus;

    /**
     * 驳回原因
     */
    private String rejectReason;

    /**
     * 不良反应/事件记录视图集合
     */
    private List<ElectronicBadRecordInfoVo> electronicBadRecordInfoVoList;
}
